Verifying digital signatures of software components ensures the authenticity and integrity of the software component. Some commercial operating systems include built-in support for verifying the digital signature of software components. Unfortunately, this verification support is not always enabled in those operating systems, and it can also be explicitly disabled on a compromised operating system.
Usually, verification of digital signature occurs internally, when a guest operating system operating on a virtual machine (VM) verifies the software component which the guest operating system has loaded, in a form of self-verification by the guest operating system. However, this method of self-verification is susceptible to tampering. In some examples, a disk copy of the software component is tampered with and the operating system digital signature verification system may be disabled. In another example, the guest operating system's digital signature verification happens; however, the loaded copy is tampered with after the guest operating system's signature verification is complete. Such compromises to the security of the digital signature would be undetectable.
Corresponding reference characters indicate corresponding parts throughout the drawings.